package com.terry.study.proxy.jdk;

import com.terry.study.custom.GPMeipo;
import sun.misc.ProxyGenerator;

import java.io.FileOutputStream;

public class TestFindLove {



//    public static void main(String[] args){
//       // new XiaoXingXing().findLove();
//
////        try {
//////            Person obj = (Person) new Meipo().getInstance(new XiaoXingXing());
//////            System.out.println(obj.getClass());
//////            obj.findLove();
////
////            //原理：
////            // 1.拿到代理对象的引用，然后获取它的接口
////            // 2、JDK代理重新生成一个类，同时实现我们给的代理对象的所实现的接口
////            // 3、把代理对象的引用也拿到了
////            // 4、重新生成一个class字节码
////            // 5、然后编译
////
//////            byte[] data = ProxyGenerator.generateProxyClass("$Proxy0",new Class[]{obj.getClass()});
//////            FileOutputStream os = new FileOutputStream("E:/$Proxy0.class");
//////            os.write(data);
//////            os.close();
////
////             Person obj = (Person)new GPMeipo().getInstance(new XiaoXingXing());
////            System.out.println(obj.getClass());
////            obj.findLove();
////        } catch (Exception e) {
////            e.printStackTrace();
////        }
//
//
//    }

    public static void main(String[] args) {

    }


}
